//变量的作用域
//1.局部变量
//作用域是变量所在的局部范围，即{}内
/*
int main()
{
    int a=9;
    {
        printf("a=%d\n",a);
    }
    printf("a=%d\n",a);
    return 0;
}
*/
//则会输出两个a=9
//若int a=9在第二个{}内 ，则报错：第十一行未声明的标识符

//2.全局变量    具有外部链接属性
//作用域是整个工程
#include <stdio.h>
int a=6;//改为extern int a;

void test()//自己定义的函数
{
    printf("test->%d\n",a);
}
int main()
{
    test();//需要放到主函数中调用
    {
        printf("a=%d\n",a);
    }
    printf("a=%d\n",a);
    return 0;
}
//则会打印三个输出：test->6 a=6 a=6
//声明来自外部的符号(如将int a=6;放到 1.c 中)
//则把2.c中int a=6 改成 extern int a;

//变量的生命周期  生命周期约等于作用域
//局部变量的生命周期是：进入作用域生命周期开始，出作用域生命周期结束
//全局变量的生命周期是：整个程序的生命周期

//当局部变量和全局变量同名时，局部变量优先 P19
int n=10;
int main()
{
    int n=1;
    printf("%d",n);//输出：1
    return 0;
}